package com.gujiayue.common.utils;

import com.gujiayue.common.page.Page;
import com.gujiayue.common.pojo.query.QueryPage;
import com.gujiayue.common.restful.RestfulRtnInfo;
/**
 * 分页校验
 * @author hujia
 *
 */
public class PageUtils {
	
	/**
	 * 对外接口page分页
	 */
	public static RestfulRtnInfo verifyPage(QueryPage<?> query) {
		// 当前页数
		String pageNo = query.getPageNo();
		// 当前分页条数
		String pageSize = query.getPageSize();
		// 验证 当前页数
		if (StringUtils.isBlank(pageNo)) {
			query.setPageNo(String.valueOf(ConstantUtils.PAGE_NO));
		}
		// 验证 当前页数
		if (!StringUtils.isNumeric(pageNo)) {
			return new RestfulRtnInfo(400, "pageNo:非法分页参数！");
		}
		// 验证分页条数
		if (StringUtils.isBlank(pageSize)) {
			query.setPageSize(String.valueOf(ConstantUtils.PAGE_SIZE));
		}
		// 验证分页条数
		if (!StringUtils.isNumeric(query.getPageSize())) {
			return new RestfulRtnInfo(400, "pageSize:非法分页参数！");
		}
		int pageSize_=Integer.valueOf(pageSize);
		// 判定一页不能超过500条
		if (pageSize_ > ConstantUtils.PAGE_SIZE_MAX) {
			return new RestfulRtnInfo(400, "pageSize:页码数据不能超过500条！");
		}
		return new RestfulRtnInfo(200, "查询成功");
	}
	
	/**
	 * 对外接口page分页
	 */
	public static RestfulRtnInfo viewPage(Page<?> page) {
		if(page.isVerifyData()) {
			return new RestfulRtnInfo(400, "page:无更多数据！");
		}
		return new RestfulRtnInfo(200, "查询成功",page);
	}
	
	/**
	 * 分页SQL
	 * @param page　
	 * @return
	 */
	public static String pageSql(Page<?> page) {
		int pageNum = (page.getPageNo() - 1) * page.getPageSize();
		if (pageNum >= page.getPageCount()) {
			pageNum = 0;
		}
		if("mysql".equals(ConstantUtils.DATABASE)){
			
		}
		StringBuffer limit= new StringBuffer();
		limit.append("limit ");
		limit.append(pageNum);
		limit.append(",");
		limit.append(page.getPageSize());
		limit.append(" ");
		return limit.toString();
		
	}
}
